為簡化使用者行為採集,JUCE 提供了 juce::Analytics 以及相關介面,讓開發者依需求收集使用者行為,收集到的資料儲存於本機或者傳送到遠端伺服器。
JUCE 提供了 AnalyticsCollectionDemo 範例,示範如何利用 juce::ThreadedAnalyticsDestination 包裝 Google Analytics,將資料收集到指定的 Google Analytics 帳號。
JUCE 也提供了 juce::ButtonTracker 類別,簡化追蹤使用者操作 JUCE 應用程式的行為。實作不複雜,JUCE 內建的其他控制項可依樣畫葫蘆。
juce::Analytics 釋出時,官方討論串有一論戰。有人認為 JUCE 開發團隊不應該提供此類可能侵犯使用者隱私的功能。
JUCE 團隊認為,我也同意,工具是「中性」的,是否作惡取決於開發者的意圖,問題不在工具開發者。不過,該串有些論點也值得思考,對此議題有興趣的,可以看看。
juce::AnalyticsDestination 提供統一的介面,用於包裝不同資料採集接收端。採集的資料格式則以 AnalyticsEvent 表示:
struct AnalyticsEvent
{
String name;
int eventType;
uint32 timestamp;
StringPairArray parameters;
String userID;
StringPairArray userProperties;
};
利用 StringPairArray 類別提供 Key/Value Pair 格式,有足夠彈性在介面不變的情況下,符合多數需求。